package com.bolt.auth.security.common.exception;


import com.bolt.convention.data.code.ServiceCode;

/**
 * Created by Administrator on 2018/11/14.
 */
public enum BizExceptionEnum implements ServiceCode {

    UNKNOWN_ERROR("1", "未知的系统错误"),
    DB_ERROR("1", "数据库异常"),
    CACHE_ERROR("2", "缓存异常"),
    HTTP_ERROR("3", "调用HTTP接口发生异常"),
    RETURN_NULL_ERROR("4", "服务不能返回空对象"),
    DATA_NOT_FIND("4", "数据不存在"),
    /**
     * 文件上传
     */
    FILE_READING_ERROR("200", "FILE_READING_ERROR!"),
    FILE_NOT_FOUND("201", "FILE_NOT_FOUND!"),
    UPLOAD_ERROR("202", "上传图片出错"),

    /**
     * 权限和数据问题
     */
    DB_RESOURCE_NULL("100", "数据库中没有该资源"),
    DB_ILLEGAL_ACCESS("101", "非当前机构数据!"),
    NO_PERMITION("405", "权限异常"),
    REQUEST_INVALIDATE("400", "请求数据格式不正确"),
    INVALID_KAPTCHA("406", "验证码不正确，请重新输入"),
    EXPIRED_KAPTCHA("407", "验证码已失效，请重新输入"),
    CANT_DELETE_ADMIN("600", "不能删除超级管理员"),
    CANT_FREEZE_ADMIN("600", "不能冻结超级管理员"),
    CANT_CHANGE_ADMIN("600", "不能修改超级管理员角色"),

    /**
     * 账户问题
     */
    USER_NOT_EXISTED("400", "没有此用户"),

    USER_ALREADY_REG("401", "该用户已经注册"),

    ACCOUNT_LOCKED("401", "账号已锁定停用,请稍侯再试"),
    ACCOUNT_EXPIRE("401", "账号已到期停用"),
    OLD_PWD_NOT_RIGHT("402", "原密码不正确"),
    TWO_PWD_NOT_MATCH("405", "两次输入密码不一致"),

    ACCOUNT_PASSWORD_EMPTY("406", "密码不能为空"),

    AUTH_REQUEST_ERROR("407", "登录账号或密码不正确"),

    AUTH_CAPTCHA_VERIFY_ERROR("408","验证码不正确，请重新输入"),

    AUTH_CAPTCHA_EXPIRED_ERROR("408","验证码过期，请重新输入"),
    AUTH_LOGIN_STATUS_ERROR("409"," 您已在别处登录，请您修改密码或重新登录"),
    ACCOUNT_CFMPASSWORD_ERROR("410", "确定密码输入不正确"),


    /**
     * token异常
     */
    TOKEN_EXPIRED("700", "token过期"),
    TOKEN_ERROR("701", "token验证失败"),
    TOKEN_ERROR_PAYLOAD("702", "token无效"),
    TOKEN_REFRESH("703", "token刷新"),

    /**
     * 签名异常
     */
    SIGN_ERROR("700", "签名验证失败"),


    /**
     * 错误的请求
     */
    MENU_PCODE_COINCIDENCE("500", "菜单编号和副编号不能一致"),
    EXISTED_THE_MENU("501", "菜单编号重复，不能添加"),
    DICT_MUST_BE_NUMBER("502", "字典的值必须为数字"),
    REQUEST_NULL("503", "请求有错误"),
    SESSION_TIMEOUT("504", "会话超时"),
    SERVER_ERROR("505", "服务器异常"),
    INVALID_LOGIN("506", "认证失败需跳转到登录页面"),


    NOT_FIND_ACCOUNT("633", "不存在您的注册信息"),

    ERROR_PHONE_NUM("634", "请填入正确的手机号"),

    ERROR_PHONE_SMS("635", "验证码发送失败,请重试"),

    CAPTCHA_TIMES_ERROR("636", "验证码达到最大尝试次数"),

    CAPTCHA_VERIFY_EXPIRED("637", " 验证码已过期，请重新获取"),

    NOT_FIND_ORG("638", " 机构信息不存在");


    /**
     * 其他
     */


    /**
     * 响应码
     */
    private final String code;

    /**
     * 响应消息
     */
    private final String message;

    /**
     * 构造函数
     *
     * @param code    响应码
     * @param message 消息
     */
    BizExceptionEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public String code() {
        return code;
    }

    @Override
    public String message() {
        return message;
    }
}
